package com.soft.mainsite.mybatis.mapper;

import com.soft.mainsite.mybatis.model.TSysUser;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * TSysUserMapper
 *
 * @author Jin
 * @create 2017-06-16
 **/
public interface TSysUserMapper {

    /**
     * 根据id删除
     *
     * @param userId
     * @return
     */
    int deleteByPrimaryKey(Integer userId);

    /**
     * 保存
     *
     * @param record
     * @return
     */
    int insert(TSysUser record);

    /**
     * 根据id查询
     *
     * @param userId
     * @return
     */
    TSysUser selectByPrimaryKey(Integer userId);

    /**
     * 根据用户名查询
     *
     * @param username
     * @return
     */
    @Select("select * from t_sys_user where username = #{username}")
    @ResultMap("BaseResultMap")
    TSysUser selectByUsername(@Param("username") String username);

    /**
     * 根据组织id查询
     *
     * @param orgId
     * @return
     */
    @Select("select u.* from t_sys_user u inner join t_sys_org_user o on u.user_id = o.user_id where o.org_id=#{orgId}  group by u.user_id")
    @ResultMap("BaseResultMap")
    TSysUser selectByOrgId(@Param("orgId") String orgId);

    /**
     * 查询所有
     *
     * @return
     */
    List<TSysUser> selectAll();

    /**
     * 查询个数
     *
     * @return
     */
    @Select("select count(0) from t_sys_user")
    Integer countUser();

    /**
     * 更新
     *
     * @param record
     * @return
     */
    int updateByPrimaryKey(TSysUser record);

    /**
     * 条件查询用户列表(用户列表)
     *
     * @param user
     * @param hasMe
     * @return
     */
    List<TSysUser> selectByCondition(@Param("user") TSysUser user, @Param("hasMe") Boolean hasMe);

    /**
     * 条件查询用户列表(站点分配列表)
     *
     * @param user
     * @return
     */
    List<TSysUser> selectSiteUserByCondition(@Param("user") TSysUser user);
}